Aplicacion OXBPM, OpenXava con Bonita Open Solution
Este artículo contiene un enlace para a una aplicación de OpenXava diseñada para Integrar el BPM de Bonita Open Solution.
La aplicacion corre sobre Liferay 6.1 y Tomcat 7.0.
Este es el enlace: http://200.29.153.50:8080/novedades
Pueden ingresar con los usarios siguientes:
Los invito a unirse y participar en la comunidad de Bonita Open Solution.
Bonita Open Solution es una solución potente e intuitiva para crear aplicaciones basadas en procesos
por un coste inmejorable. Totalmente opensource y con la calidad y funcionalidad de las aplicaciones comerciales.
En la demo tambien se incluye un Proceso Orden de Compra de Ejemplo que esta integrado con OXBPM antes señalado.
En cuanto al acceso a la API de Bonita Open Solution (BOS) desde nuestra aplicaciòn de Openxava es muy simple. En el programa OXBPM esto se lleva a cabo en la clase org.zzeus.ox.bpm.integration.runtime.facade.OXBPMModule.
En esta clase se centra toda la funcionalidad BPM del sistema. El truco básico es hacer un login programatico antes de acceder a cualquier método de la API de BOS.
Acá un fragmento de código de la clase:
publicclass OXBPMModule {// the api facadesfinal RuntimeAPI runtimeAPI = AccessorUtil.getAPIAccessor(OXConstants.BONITA_EJB_ENV).getRuntimeAPI();final QueryRuntimeAPI queryRuntimeAPI = AccessorUtil.getAPIAccessor(OXConstants.BONITA_EJB_ENV).getQueryRuntimeAPI();final ManagementAPI managementAPI = AccessorUtil.getAPIAccessor(OXConstants.BONITA_EJB_ENV).getManagementAPI();final QueryDefinitionAPI queryDefinitionAPI = AccessorUtil.getAPIAccessor(OXConstants.BONITA_EJB_ENV).getQueryDefinitionAPI();final RepairAPI repairAPI = AccessorUtil.getAPIAccessor(OXConstants.BONITA_EJB_ENV).getRepairAPI();// the realm login to galssfishfinal ProgrammaticLogin programmaticLogin = new ProgrammaticLogin();publicstaticfinalint BAR = 0;publicstaticfinalint XPDL = 1;privateString currentUserUID;public OXBPMModule(){
OXConstants.loadConstants();
User liferayUser;try{
liferayUser = UserLocalServiceUtil.getUserById(newLong(Users.getCurrent()));this.currentUserUID= liferayUser.getLogin();}catch(NumberFormatException e){// TODO Auto-generated catch block
e.printStackTrace();}catch(PortalException e){// TODO Auto-generated catch block
e.printStackTrace();}catch(SystemException e){// TODO Auto-generated catch block
e.printStackTrace();}}public OXBPMModule(String currentUserUID){
OXConstants.loadConstants();this.currentUserUID = currentUserUID;}publicSet<ActivityDefinition> getProcessActivities(ProcessDefinitionUUID uuid)throws ProcessNotFoundException, VariableNotFoundException, Exception{
programmaticLogin.login(currentUserUID, "", "processBaseRealm", false);return queryDefinitionAPI.getProcessActivities(uuid);}publicCollection<OXTaskInstance> getTaskList(ActivityState state)throwsException{Collection<OXTaskInstance> result = newTreeSet<OXTaskInstance>();
programmaticLogin.login(currentUserUID, "", "processBaseRealm", false);Collection<TaskInstance> tasks = queryRuntimeAPI.getTaskList(state);if(tasks != null)for(TaskInstance task : tasks){
result.add(new OXTaskInstance(task));}return result;}publicSet<ProcessInstance> getUserInstances()throwsException{
programmaticLogin.login(currentUserUID, "", "processBaseRealm", false);return queryRuntimeAPI.getUserInstances();}}
De igual forma, el siguiente fragmento de código se utiliza para obtener y configurar en el sistema el Usuario de Liferay que actualmente ejecuta la aplicación:
Aplicacion OXBPM, OpenXava con Bonita Open Solution
Este artículo contiene un enlace para a una aplicación de OpenXava diseñada para Integrar el BPM de Bonita Open Solution.La aplicacion corre sobre Liferay 6.1 y Tomcat 7.0.
Este es el enlace:
http://200.29.153.50:8080/novedades
Pueden ingresar con los usarios siguientes:
Rol 1: Solicitante
usuario: demo1
clave: password
Rol 2: Coordinador
usuario: demo2
clave password
Los fuentes estan disponibles en la comunidad de bonitasoft, www.bonitasoft.org El enlace es: http://www.bonitasoft.org/exchange/extension_view.php?eid=93
Los invito a unirse y participar en la comunidad de Bonita Open Solution.
Bonita Open Solution es una solución potente e intuitiva para crear aplicaciones basadas en procesos
por un coste inmejorable. Totalmente opensource y con la calidad y funcionalidad de las aplicaciones comerciales.
En la demo tambien se incluye un Proceso Orden de Compra de Ejemplo que esta integrado con OXBPM antes señalado.
Fuentes de OXBP en Comunidad de Bonita: http://www.bonitasoft.org/exchange/extension_view.php?eid=93&rid=113#rev113
Detalles Tècnicos:
En cuanto al acceso a la API de Bonita Open Solution (BOS) desde nuestra aplicaciòn de Openxava es muy simple. En el programa OXBPM esto se lleva a cabo en la clase org.zzeus.ox.bpm.integration.runtime.facade.OXBPMModule.
En esta clase se centra toda la funcionalidad BPM del sistema. El truco básico es hacer un login programatico antes de acceder a cualquier método de la API de BOS.
Acá un fragmento de código de la clase:
Note el uso de la sentencia:
antes de cada llamada a función o método de la API.
La API de BOS se configura en estas líneas de codigo:
De igual forma, el siguiente fragmento de código se utiliza para obtener y configurar en el sistema el Usuario de Liferay que actualmente ejecuta la aplicación:
Como vemos, no hay mayor dificultad en usar la API de BOS desde una aplicación de Openxava corriendo sobre Liferay.